/** 
 * 平台数据接口。
 * 由于每款游戏通常需要发布到多个平台上，所以提取出一个统一的接口用于开发者获取平台数据信息
 * 推荐开发者通过这种方式封装平台逻辑，以保证整体结构的稳定
 * 由于不同平台的接口形式各有不同，白鹭推荐开发者将所有接口封装为基于 Promise 的异步形式
 */
declare interface Platform {

    getUserInfo(): Promise<any>;

    login(): Promise<any>

    //转发菜单
    // showShareMenu(): Promise<any>;

    // shareAppMessage(openid , position):Promise<any>;

    // shareAppMessageNoQuery():Promise<any>;

    share(): Promise<any>;

    setShareData(data): Promise<any>;//设置分享数据
}

class DebugPlatform implements Platform {
    async getUserInfo() {
       
    }
    async login() {

    }

    async share() {
    }

    async setShareData(data){
    }
}


if (!window.platform) {
    window.platform = new DebugPlatform();
}



declare let platform: Platform;

declare interface Window {

    platform: Platform
}





